home *** CD-ROM | disk | FTP | other *** search
/ The Arcade BBS / arcadebbs.zip / arcadebbs / bbstools / WWIV Mods / WSFTPSRC.ZIP / WS_FTP.H < prev    next >
Encoding:
C/C++ Source or Header  |  1993-11-12  |  8.2 KB  |  259 lines

  1. /***************************************************************************
  2.   Windows Sockets FTP Client Application Support Module
  3.  
  4.   Written by:
  5.       John A. Junod             Internet: <junodj@gordon-emh2.army.mil>
  6.       267 Hillwood Street                 <zj8549@trotter.usma.edu>
  7.       Martinez, GA 30907      Compuserve: 72321,366 
  8.  
  9.   This program executable and all source code is released into the public
  10.   domain.  It would be nice (but is not required) to give me a little 
  11.   credit for any use of this code.
  12.  
  13.   THE INFORMATION AND CODE PROVIDED IS PROVIDED AS IS WITHOUT WARRANTY 
  14.   OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO 
  15.   THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 
  16.   PURPOSE. IN NO EVENT SHALL JOHN A. JUNOD BE LIABLE FOR ANY DAMAGES 
  17.   WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS 
  18.   OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF JOHN A. JUNOD HAS BEEN 
  19.   ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
  20.  
  21. *****************************************************************************/
  22. /*
  23.   MODULE: WS_FTP.H   (main program header file)
  24. */
  25.  
  26. #include <windows.h>
  27.  
  28. // **** Dialog box names
  29. // #define DLG_ABOUT                 510
  30. // #define DLG_HOST                  520
  31. // #define DLG_INPUT                 530
  32. // #define DLG_STATUS                540
  33.  
  34. // **** debug window menu definitions
  35. // may be used by other functions!
  36.  
  37. // under COMMAND popup menu
  38. #define CMD_CONNECT                 1010
  39. #define CMD_CLOSE                   1020
  40.  
  41. #define CMD_CWD                     1040
  42. #define CMD_DELE                    1050
  43. #define CMD_HELP                    1060
  44. #define CMD_LIST                    1070
  45. #define CMD_MKD                     1080
  46. #define CMD_NLST                    1090
  47. #define CMD_PWD                     1100
  48. #define CMD_QUOTE                   1110
  49. #define CMD_RETR                    1120
  50. #define CMD_RMD                     1130
  51. #define CMD_STATUS                  1140
  52. #define CMD_STOR                    1150
  53.  
  54. #define CMD_TYPE_I                  1170
  55. #define CMD_TYPE_A                  1180
  56.  
  57. #define CMD_SHFLAGS                 1200
  58.  
  59. // under OPTIONS popup menu
  60. #define OPT_SETVIEWER               1410
  61.  
  62. #define IDM_ABOUT                   1500
  63. #define IDM_EXIT                    1600
  64.  
  65. // **** main window child window identifiers
  66. // TXT = static text windows
  67. // LST = list boxes
  68. // BTN = push buttons
  69. // RB  = radio buttons
  70.  
  71. // local side child windows
  72. #define TXT_LDIRECTORY              2110
  73. #define LST_LDIRS                   2120
  74. #define LST_LFILES                  2130
  75. #define BTN_LCHANGE                 2140
  76. #define BTN_LMKDIR                  2150
  77. #define BTN_LRMDIR                  2160
  78. #define BTN_LDISPLAY                2170
  79. #define BTN_LRENAME                 2180
  80. #define BTN_LDELETE                 2190
  81.  
  82. // remote side child windows
  83. #define TXT_HOSTNAME                2200
  84. #define TXT_RDIRECTORY              2210
  85. #define LST_RDIRS                   2220
  86. #define LST_RFILES                  2230
  87. #define BTN_RCHANGE                 2240
  88. #define BTN_RMKDIR                  2250
  89. #define BTN_RRMDIR                  2260
  90. #define BTN_RDISPLAY                2270
  91. #define BTN_RRENAME                 2280
  92. #define BTN_RDELETE                 2290
  93.  
  94. // transfer buttons
  95. #define BTN_LOCAL_TO_REMOTE         2310
  96. #define BTN_REMOTE_TO_LOCAL         2320
  97.  
  98. // configuration buttons
  99. #define RB_ASCII                    2410
  100. #define RB_BINARY                   2411
  101. #define RB_L8                       2412
  102.  
  103. // information text windows
  104. #define TXT_STATUS                  2510
  105. #define TXT_RBYTES                  2520
  106. #define TXT_LBYTES                  2530
  107.  
  108. // control buttons
  109. #define BTN_CONNECT                 2610
  110. #define BTN_CLOSE                   2620
  111. #define BTN_LONG                    2630
  112. #define BTN_OPTION                  2635
  113. #define BTN_ABOUT                   2640
  114. #define BTN_EXIT                    2650
  115.  
  116. // input dialog controls
  117. #define DLG_PROMPT                  3010
  118. #define DLG_EDIT                    3020
  119.  
  120. // **** connect dialog box controls
  121. #define DLG_EDT_HOST                4010
  122. #define DLG_EDT_USERID              4020
  123. #define DLG_EDT_PASSWD              4030
  124. #define DLG_HOST_TIMEOUT            4040
  125.  
  126. // **** status dlg identifiers
  127. #define CKB_BELL                    5010
  128. #define CKB_CRSTRIP                 5020
  129. #define CKB_GLOBBING                5030
  130. #define CKB_HASH                    5040
  131. #define CKB_PROMPT                  5050
  132. #define CKB_INTERACTIVE             5060
  133. #define CKB_MCASE                   5070
  134. #define CKB_PORT_CMDS               5080
  135. #define CKB_RECV_UNIQUE             5090
  136. #define CKB_STOR_UNIQUE             5100
  137. #define CKB_VERBOSE                 5110
  138. #define CKB_AUTOSTART               5120
  139. #define BTN_OPTIONS                 5130
  140. #define DLG_MAILADDR                5250
  141.  
  142. #define RB_SHOWCHECKS 8100
  143.  
  144. // **** misc definitions
  145. #define TYPE_I 'I'
  146. #define TYPE_A 'A'
  147. #define TYPE_E 'E'
  148. #define TYPE_L 'L'
  149.  
  150. #define FORM_N 'N'
  151. #define FORM_T 'T'
  152. #define FORM_C 'C'
  153.  
  154. #define MODE_S 'S'
  155. #define MODE_B 'B'
  156. #define MODE_C 'C'
  157.  
  158. #define DBUGWNDCLASS "WSDBUGWNDCLASS"
  159.  
  160. struct win_info {
  161.   HWND hWnd;
  162.   int nLineHeight;
  163.   int nScreenRows;
  164.   int nMemPtr;
  165.   int nVpos;
  166.   GLOBALHANDLE hGMem[100];
  167. };
  168.  
  169. // **** function prototypes
  170.  
  171. // in ws_child.c
  172. int CreateSubWindows(HWND,HWND);
  173. int GetLocalDirForWnd(HWND);
  174. LPSTR FindName(LPSTR);
  175. int GetRemoteDirForWnd(HWND);
  176. void ShowOurFlags(void);
  177. int ReadProcessHelp(SOCKET);
  178.  
  179. // in ws_con.c
  180. int getreply(SOCKET,LPSTR);
  181. int command(SOCKET socket, char *fmt,...);
  182. char *onoff(BOOL);
  183. int DoSTAT(SOCKET);
  184. int DoCHMOD(SOCKET,LPSTR,LPSTR);
  185. int DoCWD(SOCKET,LPSTR);
  186. int DoDirList(SOCKET,LPSTR);
  187. int DoDELE(SOCKET,LPSTR);
  188. int DoMKD(SOCKET,LPSTR);
  189. int DoPWD(SOCKET);
  190. int DoQUOTE(SOCKET,LPSTR);
  191. int DoRMD(SOCKET,LPSTR);
  192. SOCKET DoConnect(LPSTR);
  193. int DoDirList(SOCKET,LPSTR);
  194. int SendFile(SOCKET,LPSTR,LPSTR,char);
  195. int RetrieveFile(SOCKET,LPSTR,LPSTR,char);
  196. SOCKET DoClose(SOCKET sockfd);
  197. int SendPacket(SOCKET,LPSTR);
  198. int ReadDisplayLine(SOCKET);
  199. int ReadLine(SOCKET);
  200. SOCKET GetFTPListenSocket(SOCKET sockfd);
  201. int SendMass(SOCKET,LPSTR filename,BOOL);
  202. int ReadMass(SOCKET,LPSTR filename,BOOL);
  203.  
  204. // in ws_ip.c
  205. SOCKET connectsock(char *host,char *service,char *protocol);
  206. SOCKET connectTCP(char *host,char *service);
  207. SOCKET connectUDP(char *host,char *service);
  208. int sendstr(SOCKET sockfd,LPSTR ptr,int nbytes);
  209.  
  210. // in ws_debug.c
  211. int CreateDebugWindow(HWND hMainWnd,HWND hInst);
  212. LONG FAR PASCAL DebugWndProc(HWND hWnd,WORD Message,WORD wParam,LONG lParam);
  213.  
  214. // in ws_error.c
  215. LPSTR ReturnWSError(UINT Err,LPSTR lpszBuf);
  216. void ReportWSError(LPSTR lpszMsg,UINT Err);
  217.  
  218. // in ws_main.c
  219. LONG FAR PASCAL WndProc(HWND, WORD, WORD, LONG);
  220. BOOL FAR PASCAL WS_AboutMsgProc(HWND, WORD, WORD, LONG);
  221. BOOL FAR PASCAL WS_HostMsgProc(HWND, WORD, WORD, LONG);
  222. BOOL FAR PASCAL WS_InputMsgProc(HWND, WORD, WORD, LONG);
  223. BOOL FAR PASCAL WS_StatMsgProc(HWND, WORD, WORD, LONG);
  224. int nCwRegisterClasses(void);
  225. void cwCenter(HWND, int);
  226. void CwUnRegisterClasses(void);
  227.  
  228. // in ws_paint.c
  229. int GetLocalInfo(void);
  230. void ReleaseDisplayMem(VOID);
  231. void ReleaseWindowMem(struct win_info *);
  232. void DoAddLine(LPSTR);
  233. void DoAddWindowLine(struct win_info *,LPSTR);
  234. void DoPrintf(char *fmt,...);
  235. void DoWindowPrintf(struct win_info *,char *,...);
  236. void DoWindowPaint(struct win_info *);
  237.  
  238. #define DLG_HOST_ANONY              101
  239. #define DLG_HOST_SAVE               102
  240. #define DLG_HOST_PWD                103
  241.  
  242. #define DLG_HOST_AUTO               6000
  243. #define DLG_HOST_UNIX               6001
  244. #define DLG_HOST_IBM_VM             6002
  245. #define DLG_HOST_VMS_MULTINET       6004
  246. #define DLG_HOST_VMS_UCX            6008
  247. #define DLG_HOST_PCTCP              6016
  248. #define DLG_HOST_NCSA               6032
  249. #define DLG_HOST_NOS                6064
  250. #define DLG_HOST_QVT                6128
  251. #define DLG_HOST_IBM_TCP            6256
  252. #define DLG_HOST_CHAMELEON          6512
  253. #define DLG_HOST_SUPER              7024
  254. #define DLG_HOST_SINTFTPD           8048
  255. #define DLG_HOST_U5000             10096
  256.  
  257. #define DLG_HOST_DIR                105
  258.  
  259.